import javax.swing.JComponent;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;
/**
This component draws a message by constructing individual letter objects.
This is solution is more object oriented because each letter is separated
to perform its own duty.
*/
public class LettersComponent extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
final int WIDTH = 30;
final int HEIGHT = 50;
final int SPACING = 5;
Rectangle bounds = new Rectangle(0, 0, WIDTH, HEIGHT);
LetterH h = new LetterH(bounds);
h.draw(g2);
bounds.translate(WIDTH + SPACING, 0);
LetterE e = new LetterE(bounds);
e.draw(g2);
bounds.translate(WIDTH + SPACING, 0);
LetterL l1 = new LetterL(bounds);
l1.draw(g2);
bounds.translate(WIDTH + SPACING, 0);
LetterL l2 = new LetterL(bounds);
l2.draw(g2);
bounds.translate(WIDTH + SPACING, 0);
LetterO o = new LetterO(bounds);
o.draw(g2);
bounds = new Rectangle(0, HEIGHT + SPACING, WIDTH, HEIGHT);
LetterH h2 = new LetterH(bounds);
h2.draw(g2);
bounds.translate(WIDTH + SPACING, 0);
LetterO o2 = new LetterO(bounds);
o2.draw(g2);
bounds.translate(WIDTH + SPACING, 0);
LetterL l3 = new LetterL(bounds);
l3.draw(g2);
bounds.translate(WIDTH + SPACING, 0);
LetterE e2 = new LetterE(bounds);
e2.draw(g2);
}
}